import { computed } from 'vue'
import { useRequest  } from 'vue-request'

/**
 * 分页
 * @param {请求方法} apiRequestMethod
 * @returns
 */
export default function (apiRequestMethod) {
  // 分页查询数据
  const {
    run, data, loading, error, refresh
  } = useRequest (apiRequestMethod, {
    loadingDelay: 0, // 请求花多少才让显示loading
    loadingKeep: 2000, // 持续时间

    // 防抖，时间内的请求只发一次
    debounceInterval: 300,
    // 节流，时间后发送请求
    throttleInterval: 10000,

    // 聚焦控制
    refreshOnWindowFocus: true, // 开启多页面的时候激活自动发请求
    refocusTimespan: 1000, // 重新聚焦间隔时间

    // 轮询，间隔时间发一次
    // pollingInterval: 1000,
    // 手动触发
    manual: true,
  })
  // 数据表格的数据源
  const dataSource = computed(() => data.value?.data || [])
  // console.info(dataSource)
  return {
    refresh,
    run,
    loading,
    dataSource,
    error
  }
}
